package com.example.orderminiappapi.service;

import com.example.orderminiappapi.bean.Request;
import com.example.orderminiappapi.bean.SearchCondition;
import com.example.orderminiappapi.bean.Shop;
import com.example.orderminiappapi.bean.ShopSearchCondition;

import java.util.List;

public interface ShopService {
    List<Shop> selectShop(ShopSearchCondition shopSearchCondition);

    List<Shop> searchRecommendShop();

    Shop searchShopDetailByShopId(Shop shop);

    List<Shop> searchShopByKeywords(Request request);       // 根据keywords查询餐厅

    /**
     * 后台管理相关接口
     * */
    List<Shop> shopOwnerSearch(Shop shop);                  //  根据ownerId获取其拥有的商店

    List<Shop> shopOwnerSearchExamine(Shop shop);           //  根据ownerId获取其正在审核的商店

    List<String> getAllBackCateName();                      //  获取所有的餐厅类型

    Shop searchOneShop(Shop shop);                          //  根据shopId获取某商店的具体信息

    int updateShopInfo(Shop shop);                          //  根据shopId修改某商店的具体信息

    int applyNewShop(Shop shop);                            //  申请一个新商店

    int completeOrder(Shop shop);                           //  完成一个订单，将该商店的销量+1

    /**
     * 管理员相关接口
     * */
    List<Shop> searchAllShop(SearchCondition searchCondition);                    //  根据查询条件获取其所有的商店

    int searchAllShopCount(SearchCondition searchCondition);                     //  根据查询条件获取其所有的商店总数

    int suspendTheShop(Shop shop);                          //  下架商店

    int continueTheShop(Shop shop);                         //  上架商店
}
